#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <chrono>
#include <iomanip>
#pragma once

using namespace std;

class Bit
{
public:

	Bit(void)
	{
	}

	~Bit(void)
	{
	}

	char and(char a, char b) /* Returnerar '1' om a '1' och b '1' */
	{
		if(a == '1' && b == '1')
			return '1';
		else
			return '0';
	}
	char or(char a, char b)
	{
		if(a == '1' || b  == '1')
			return '1';
		else
			return '0';
	}
	char xor(char a, char b)
	{
		if((a == '1' && b == '0') || (a == '0' && b == '1'))
			return '1';
		else
			return '0';
	}
	char not(char a)
	{
		if(a == '0')
			return '1';
		else
			return '0';
	}
	char nand(char a, char b)
	{
		if(a == '1' && b == '1')
			return '0';
		else
			return '1';
	}
	char nor(char a, char b)
	{
		if(a == '1' || b  == '1')
			return '0';
		else
			return '1';
	}
	void add(char a, char b, char ci, char &sum, char &cu)
	{
		char n1 = xor(a,b);
		char n2 = or(a,b);
		char n3 = and(n2, ci);
		char n4 = and(a,b);
		cu = or(n3,n4);
		sum = xor(n1, ci);
	}

};